/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package pe.edu.upc.controlinsumos.controller;

import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

import pe.edu.upc.controlinsumos.model.Movimiento;
import pe.edu.upc.controlinsumos.model.Rpt_Movimiento;
import pe.edu.upc.controlinsumos.service.MovimientoServiceImp;


/**
 *
 * @author SMATAYOSHI
 */
public class MovimientoController implements Controller{

    public ModelAndView handleRequest(HttpServletRequest request,
                        HttpServletResponse response) throws ServletException, IOException {

             boolean estado = false;
             String descripcion = null;

             String accion = null;
             String codAlmacen = null;
             String codProducto = null;
             String tipo = null;
             String cantidad = null;
             String userOperador = null;
             String userTrabajador = null;
             String departamento = null;

             accion = request.getParameter("accion");
             userOperador = request.getParameter("hd_operador");
             userTrabajador = request.getParameter("cbo_trabajador");
             departamento = request.getParameter("txt_departamento");
             codAlmacen = request.getParameter("cbo_almacen");
             codProducto = request.getParameter("cbo_producto");
             tipo = request.getParameter("hd_tipo");
             cantidad = request.getParameter("txt_cantidad");

             MovimientoServiceImp movimientoService = new MovimientoServiceImp();
             ModelAndView modelAndView = new ModelAndView("jsonView");

             if(accion == null){
                 descripcion = "accion incorrecta";
                 modelAndView.addObject("estado", descripcion);
             }else if(accion.equals("insertar")){
                if(codAlmacen != null && codProducto != null && tipo != null && cantidad !=null){
                    Movimiento movimiento = new Movimiento();
                    movimiento.setCodAlmacen(Integer.parseInt(codAlmacen));
                    movimiento.setCodProducto(Integer.parseInt(codProducto));
                    movimiento.setTipo(tipo);
                    movimiento.setCantidad(Integer.parseInt(cantidad));
                    movimiento.setUserOperador(Integer.parseInt(userOperador));
                    movimiento.setUserTrabajador(Integer.parseInt(userTrabajador));
                    movimiento.setDepartamento(departamento);
                    estado = movimientoService.registrarMoniviento(movimiento);
                    if(estado){
                        descripcion = "Se registro correctamente";
                    }else{
                        descripcion = "Error en el registro";
                    }
                    modelAndView.addObject("estado", descripcion);
                }
             }else{//listar
                    List<Rpt_Movimiento> movimientos = null;
                    movimientos = movimientoService.listarMovimientos();
                    if (movimientos != null){
                        descripcion = "Resultados ok";
                        modelAndView.addObject(movimientos);
                    }else{
                        descripcion = "No hay resultados";
                    }
                    modelAndView.addObject("estado", descripcion);

             }

             
             
             return modelAndView;
        }

    
}
